
using System;
using System.Data;
using System.Linq;
using System.Linq.Dynamic;
using System.Linq.Dynamic.Core;
using System.Linq.Expressions;
using System.Threading.Tasks;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;

using Abp.UI;
using Abp.AutoMapper;
using Abp.Authorization;
using Abp.Linq.Extensions;
using Abp.Domain.Repositories;
using Abp.Application.Services;
using Abp.Application.Services.Dto;


using JYJ.AiYard.StationManagement.TbDiscountBills.Dtos;
using JYJ.AiYard.StationManagement.TbDiscountBills;


namespace JYJ.AiYard.StationManagement.TbDiscountBills
{
    /// <summary>
    /// TbDiscountBill应用层服务的接口方法
    ///</summary>
    public interface ITbDiscountBillAppService : IApplicationService
    {
        /// <summary>
		/// 获取TbDiscountBill的分页列表信息
		///</summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<PagedResultDto<TbDiscountBillMaster>> GetPaged(GetTbDiscountBillsInput input);


		/// <summary>
		/// 通过指定id获取TbDiscountBillListDto信息
		/// </summary>
		Task<TbDiscountBillListDto> GetById(EntityDto<long> input);


        /// <summary>
        /// 返回实体的EditDto
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<GetTbDiscountBillForEditOutput> GetForEdit(NullableIdDto<long> input);


        /// <summary>
        /// 添加或者修改TbDiscountBill的公共方法
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<Dictionary<string,string>> CreateOrUpdate(CreateOrUpdateTbDiscountBillInput input);

        /// <summary>
        /// 删除券--只有未支付的
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task<bool> DeleteDiscountBill(long Id);

        /// <summary>
        /// 删除券--包括所有
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        Task<bool> BatchDeleteDiscountBill(List<long> Id);
        /// <summary>
        /// 删除券--明细
        /// </summary>
        /// <param name="Id"></param>
        /// <param name="MX"></param>
        /// <returns></returns>
        Task<bool> BatchUpdateDiscountBillMX(List<long> Id);

        ///// <summary>
        ///// 删除TbDiscountBill信息的方法
        ///// </summary>
        ///// <param name="input"></param>
        ///// <returns></returns>
        //Task Delete(EntityDto<long> input);


        ///// <summary>
        ///// 批量删除TbDiscountBill
        ///// </summary>
        //Task BatchDelete(List<long> input);




    }
}
